import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * ClassName HashMapTest
 * Description TODO
 * Author Hexiao
 * Date 2018/8/21 10:06
 * Version 1.0
 **/
public class HashMapTest {
    public static void traverse(){
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        map.put(12, "JAVA");
        map.put(13, "IOS");
        map.put(14, "JS");
        map.put(15, "PHP");
        map.put(16, "C++");
//=============遍历===================================
// 1、通过keySet()获取所有的key按照key来遍历
//        for (Integer i:map.keySet()){//keySet()：获取所有的key值
//            System.out.println(map.get(i));
//        }
// 2、Map.entrySet使用iterator遍历key和value
//        Iterator<Map.Entry<Integer,String>> iterator=map.entrySet().iterator();//通过entrySet()方法将map集合中的映射关系取出（这个关系就是Map.Entry类型），将关系集合entrySet进行迭代，存放到迭代器中
//        while (iterator.hasNext()){
//            Map.Entry<Integer,String> entry=iterator.next();
//            System.out.println(entry.getKey() + "---" + entry.getValue());
//          //  System.out.println(iterator.next());
//        }

//        获取Map中所有的值：Map无迭代器，Set有迭代器——>因此将Map先转换为Set再使用迭代器进行迭代取出
//        Set<Map.Entry<Integer,String>> entrySet= map.entrySet();
//        Iterator<Map.Entry<Integer,String>> iterator =entrySet.iterator();
//        Map.Entry entry = null;
//        while (iterator.hasNext()){
//            entry = iterator.next();
//            System.out.println(entry.getKey()+""+entry.getValue());
////          System.out.println( iterator.next());
//        }
//   3、通过Map.entrySet遍历key和value，推荐，尤其是容量大时
        for (Map.Entry<Integer,String> entry:map.entrySet()){
            System.out.println(entry.getKey()+""+entry.getValue());
        }
//   4、通过Map.values()遍历所有的value，但不能遍历key
        for (String s:map.values()){
            System.out.println(s);
        }
    }
    public static void main(String[] args) {
        traverse();



    }
}